#include <stdio.h>

// 结构体数组 常用于我们进行顺序表操作

typedef struct 
{
    // 登录用
    char user_name[128];   // 账号
    char password[128];    // 密码
    // 学生信息
    char name[128];        // 学生姓名
    char sex[5];           // 学生性别
    int id;                 // 学生id
    int age;                // 学生年龄
    int soc;                // 学生成绩
}stu_user;


// 值传递
void func_struct_1(stu_user user)
{

}

// 指针传递    常量指针  常量
void func_struct_2( stu_user *  user)
{
    // 如何遍历数据
    printf("姓名\t性别\t学号\t年龄\t成绩\n");
    for (size_t i = 0; i < 5; i++)
    {
        printf("%s\t%s\t%d\t%d\t%d\n" , \
            user[i].name , user[i].sex , user[i].id , user[i].age , user[i].soc
        );
    }
}


int main(int argc, char const *argv[])
{
    // 结构体数组  定义 + 初始化
    stu_user s1[20] = {
        {"石昊" , "1" , "石昊" , "男" , 1 , 18 , 100},
        {"萧炎" , "2" , "萧炎" , "男" , 1 , 18 , 100},
        {"牧尘" , "3" , "牧尘" , "男" , 1 , 18 , 100},
        {"唐三" , "4" , "唐三" , "男" , 1 , 18 , 100},
        {"林动" , "6" , "林动" , "男" , 1 , 18 , 100},
    };
    printf("%ld\n" , sizeof(s1));//8080

    // 如何遍历数据
    // printf("姓名\t性别\t学号\t年龄\t成绩\n");
    // for (size_t i = 0; i < 5; i++)
    // {
    //     printf("%s\t%s\t%d\t%d\t%d\n" , \
    //         s1[i].name , s1[i].sex , s1[i].id , s1[i].age , s1[i].soc
    //     );
    // }

    func_struct_2(s1);
    
    return 0;
}